package ${packageName}.service.wrapper;

import ${packageName}.model.entity.*;
import ${packageName}.model.vo.*;
import ${packageName}.model.dto.*;
import ${packageName}.service.${name}Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
* Copyright (c) 2018-2025, chris All rights reserved.
* <p>
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* <p>
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* <p>
* Author: ${author}
* <p>
* Date: ${time}
* ${description}
**/
@Service
public class ${name}ServiceWrapper {
    @Autowired
    private ${name}Service ${lowerName}Service;

    public Page<${name}VO> query(Pageable page) {
        return ${lowerName}Service.query(page)
            .map(${name}VO::from);
    }

    public ${name}VO get(${primaryFieldType} id) {
        return ${name}VO.from(${lowerName}Service.get(id));
    }

    public ${name} add(${name}DTO ${lowerName}) {
        return ${lowerName}Service.add(${lowerName});
    }

    public void update(${name}DTO ${lowerName}) {
        ${lowerName}Service.update(${lowerName});
    }

    public void delete(${primaryFieldType} id) {
        ${lowerName}Service.delete(id);
    }
}

